Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LibWeb: Add CompressionStream/DecompressionStream #1379

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

jdahlin
Copy link
Contributor

@jdahlin jdahlin commented Sep 12, 2024

LibWeb: Add CompressionStream/DecompressionStream

This PR implements CompressionStream and DecompressionStream. A basic example is included that has also been tested in Brave.

The new APIs are implemented on top of TransformStream using JavaScript, it's still a draft and I'd like to get some input on the general approach before I finish it up.

At the very least, a proper test needs to be added and some way to embed the JS source inside the executable, probably via some kind of generator script. It would also be good to figure out how to make the APIs internal, currently CompressionStream_constructor is exposed in the public JS API which would be good to avoid, unsure if it's a blocker though.

Thoughts, comments?

@jdahlin jdahlin force-pushed the compression-stream branch 7 times, most recently from b2f010b to 629ae46 Compare September 12, 2024 14:31
TODO: Figure out how to make JS APIs private
TODO: Bundle JS inside the executable
TODO: Create a proper test case
TODO: Figure out how to run WPT
// "Note: Some non-conformant implementations send the "deflate"
// compressed data without the zlib wrapper."
return DeflateDecompressor::decompress_all(bytes);
} else {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The else block here is unnecessary and I believe the linter usually complains when it sees that but I don't remember.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants